//
//  WebUtil.h
//  LOU
//
//  Created by iMacOne on 15/11/9.
//  Copyright © 2015年 UNOHACHA. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import <SystemConfiguration/SCNetworkReachability.h>
#import "General.h"
@class RootViewController;
#define request_post @"POST"
#define request_get @"GET"
#define request_time_out 15
#define net_err_msg @"找不到可用的网络连接"
#define load_fail_msg @"很抱歉，网络不给力，加载数据失败了"
#define root_url @"http://www..com/app"
#define img_url @"http://doc..com"
#define domain @"www..com"
#define upload_url @"http://:8086/upload.htm"

@interface WebUtil : NSObject<NSURLConnectionDelegate>

@property (nonatomic, strong) NSString *url;// 请求网络的完整路径
@property (nonatomic, strong) NSString *param;// 请求网络的参数，多个参数用&隔开
@property (nonatomic, strong) NSMutableData *serverData;// 请求完毕的返回数据
@property (nonatomic, strong) RootViewController *control;// 请求所在的控制器
@property (nonatomic, assign) BOOL isSolveFail;// 是否由WebUtil处理错误
@property (nonatomic, assign) BOOL isBackup;// 是否备份数据
@property (nonatomic, assign) enum LoadingType loadingType;// 进度条类型

@property (nonatomic, assign) RequestServerType requestServerType;// 请求服务器类型(枚举)
@property (nonatomic, strong) ResponseCallback callback;


#pragma mark 判断设备能否上网
+ (BOOL)isNet;

#pragma mark 请求TCK服务器的构造方法
#pragma _partUrl 接口路径，只需要后面一截
#pragma _param 参数，多个参数用&隔开
- (id)initWithTck:(NSString*)_partUrl _param:(NSString*)param _control:(RootViewController*)control;
#pragma mark 请求TCK服务器
#pragma _callback 回调函数的block
#pragma loading_type 进度条的类型
#pragma is_backup 是否需要备份数据(一般查询的数据需要备份，提交的数据不需要)
#pragma is_solveFail 调用接口失败时，是否内部处理错误
#pragma _frequency 调用接口的频率(单位：秒)，及时调接口，就传入0
- (void)requestTck:(ResponseCallback)callback loading_type:(LoadingType)loading_type is_backup:(BOOL)is_backup is_solveFail:(BOOL)is_solveFail _frequency:(int)_frequency;

#pragma mark 上传文件的构造方法
// _partUrl 接口路径，只需要后面一截
// _control 控制器的实例
- (id)initWithUpload:(NSString*)_partUrl _control:(RootViewController*)control;

#pragma mark 请求上传文件
// _callback 回调函数的block
// _data 把文件转换成数据
// _fileName 文件名
- (void)requestUpload:(ResponseCallback)callback _data:(NSData*)_data _fileName:(NSString*)_fileName;

@end
